package com.xyy.saas.payment.cores.param;

import com.xyy.saas.payment.cores.enums.BusinessIdTypeEnum;
import com.xyy.saas.payment.cores.enums.InvokerEnum;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;

@Getter
@Setter
public class MerchantAccountModifyParam implements Serializable {
    private static final long serialVersionUID = 7299490242407019626L;
    /**
     * 基础信息
     */
    // 业务线
    private BusinessIdTypeEnum businessIdType;
    // 业务侧商户标识
    private String businessId;
    // 回调地址
    private String callback;
    // 鉴权类型
    private InvokerEnum invoker;

    // 验证手机号，授权人手机号
    private String mobile;

    /**
     * 企业信息
     */
    // 企业电话
    private String enterprisePhone;
    // 经营地址
    private String businessLocation;
    // 门头照
    private String businessLocationUrl;
    // 营业执照
    private String businessLicenseUrl;

    /**
     * 法人信息
     */
    // 法人姓名
    private String corporationName;
    // 法人身份证号
    private String corporationIdNo;
    // 法人证件签发日期
    private String corporationIdStartDate;
    // 法人证件到期日期
    private String corporationIdEndDate;
    // 法人身份证正面
    private String corporationIdCardFrontUrl;
    // 法人身份证反面
    private String corporationIdCardBackUrl;
    // 法人联系电话
    private String corporationPhone;

    /**
     * 授权人
     */
    // 授权人姓名
    private String operatorName;
    // 授权人身份证号
    private String operatorIdNo;
    // 授权人手机号
    private String operatorPhone;
    // 业务授权函
    private String operatorCertificateUrl;

    /**
     * 股东
     */
    // 股东名称
    private String shareholderName;
    // 股东证件类型 IDENTITY_CARD UNIFIED_SOCIAL_CREDIT_CODE
    private String shareholderCardType;
    // 股东证件号码
    private String shareholderCardNo;
    // 股东证件签发日期 yyyy-MM-dd
    private String shareholderCardStartDate;
    // 股东证件到期日期 yyyy-MM-dd
    private String shareholderCardEndDate;

    /**
     * 受益人
     */
    // 受益人姓名
    private String beneficiaryName;
    // 受益人证件类型(只支持二代身份证)
    private String beneficiaryCardType = "IDENTITY_CARD";
    // 受益人身份证号
    private String beneficiaryCardNo;
    // 受益人证件签发日期
    private String beneficiaryCardStartDate;
    // 受益人证件到期日期
    private String beneficiaryCardEndDate;
    // 受益人联系电话
    private String beneficiaryPhone;
    // 受益人地址
    private String beneficiaryLocation;
    /**
     * 短信验证码
     */
    private String activeCode;

    /**
     * 审核/申请信息
     */
    // 申请单号
    private String applyNo;
    // 申请时间
    private String applyTime;
    // 审核时间
    private String auditTime;
    // 审核状态，com.xyy.saas.payment.cores.enums.AccountModifyStatusEnum
    private Integer status;
    // 驳回原因
    private String message;
}
